﻿/*
 Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.dialog.add("hiddenfield",
    function(d) {
        return{
            title: d.lang.forms.hidden.title,
            hiddenField: null,
            minWidth: 350,
            minHeight: 110,
            onShow: function() {
                delete this.hiddenField;
                var a = this.getParentEditor(), b = a.getSelection(), c = b.getSelectedElement();
                c &&
                    (c.data("cke-real-element-type") && "hiddenfield" == c.data("cke-real-element-type")) &&
                    (this.hiddenField = c, c =
                        a.restoreRealElement(this.hiddenField), this.setupContent(c), b.selectElement(this.hiddenField))
            },
            onOk: function() {
                var a = this.getValueOf("info", "_cke_saved_name");
                this.getValueOf("info", "value");
                var b = this.getParentEditor(),
                    a = CKEDITOR.env.ie && !(8 <= CKEDITOR.document.$.documentMode)
                        ? b.document.createElement('<input name="' + CKEDITOR.tools.htmlEncode(a) + '">')
                        : b.document.createElement("input");
                a.setAttribute("type", "hidden");
                this.commitContent(a);
                a = b.createFakeElement(a, "cke_hidden", "hiddenfield");
                this.hiddenField
                    ? (a.replace(this.hiddenField), b.getSelection().selectElement(a))
                    : b.insertElement(a);
                return!0
            },
            contents: [
                {
                    id: "info",
                    label: d.lang.forms.hidden.title,
                    title: d.lang.forms.hidden.title,
                    elements: [
                        {
                            id: "_cke_saved_name",
                            type: "text",
                            label: d.lang.forms.hidden.name,
                            "default": "",
                            accessKey: "N",
                            setup: function(a) {
                                this.setValue(a.data("cke-saved-name") || a.getAttribute("name") || "")
                            },
                            commit: function(a) {
                                this.getValue() ? a.setAttribute("name", this.getValue()) : a.removeAttribute("name")
                            }
                        },
                        {
                            id: "value",
                            type: "text",
                            label: d.lang.forms.hidden.value,
                            "default": "",
                            accessKey: "V",
                            setup: function(a) { this.setValue(a.getAttribute("value") || "") },
                            commit: function(a) {
                                this.getValue() ? a.setAttribute("value", this.getValue()) : a.removeAttribute("value")
                            }
                        }
                    ]
                }
            ]
        }
    });
